#install.packages("webshot")
webshot::install_phantomjs()
## phantomjs has been installed to C:\Users\Mafer\AppData\Roaming\PhantomJS
#En tiempo de Norte América, el eclipse total inició el 21 de agosto del 2017 a las 18:26:40.
#Este mismo evento, sucederá un Saros después.
#Un Saros equivale a 223 Synodic Months
#Un Synodic Month equivale a 29 días con 12 horas, con 44 minutos y 3 segundos.
library(lubridate)
## Warning: package 'lubridate' was built under R version 3.5.3
##
## Attaching package: 'lubridate'
## The following object is masked from 'package:base':
##
## date
library(dplyr)
## Warning: package 'dplyr' was built under R version 3.5.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:lubridate':
##
## intersect, setdiff, union
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
#OlsonNames()
inicio <- "21/08/2017 18:26:40, tz = US/Pacific"
inicio <- dmy_hms(inicio)
inicio
## [1] "2017-08-21 18:26:40 UTC"
synodic_month <- days(29) + hours(12) + minutes(44) + seconds(3)
synodic_month
## [1] "29d 12H 44M 3S"
saros <- synodic_month * 223
saros
## [1] "6467d 2676H 9812M 669S"
proximo <- inicio + saros
proximo
## [1] "2035-09-02 02:09:49 UTC"
library(readr)
library(lubridate)
library(dplyr)
library(ggplot2)
library(plotly)
## Warning: package 'plotly' was built under R version 3.5.3
##
## Attaching package: 'plotly'
## The following object is masked from 'package:ggplot2':
##
## last_plot
## The following object is masked from 'package:stats':
##
## filter
## The following object is masked from 'package:graphics':
##
## layout
datos <- read_csv(file = "lab5/data.csv")
## Parsed with column specification:
## cols(
## `Fecha Creación` = col_character(),
## `Hora Creación` = col_time(format = ""),
## `Caller ID` = col_integer(),
## Cod = col_character(),
## Email = col_integer(),
## SMS = col_integer(),
## Call = col_integer(),
## `Fecha Final` = col_character(),
## `Hora Final` = col_time(format = "")
## )
datos$`Fecha Creación` <- dmy(datos$`Fecha Creación`)
datos$`Fecha Final` <- dmy(datos$`Fecha Final`)
#1. ¿En qué meses existe una mayor cantidad de llamadas por código?
datos %>% filter(Call == 1) %>%
mutate(mes = month(`Fecha Creación`, label = T)) %>%
group_by(mes) %>% summarise(n = sum(Call)) %>%
arrange(desc(n)) %>%
plot_ly(x= ~mes, y=~n, type = 'bar')
#El mes de marzo es en el que más llaman con 497 llamadas
#2. ¿Qué día de la semana es el más ocupado?
datos %>%
mutate(weekday = wday(`Fecha Creación`, label = T)) %>%
group_by(weekday) %>% summarise(count = n()) %>%
plot_ly(x= ~weekday, y=~count, type = 'bar')
#El día más ocupado es el domingo
#3.¿Qué mes es el más ocupado?
datos %>%
mutate(mes = month(`Fecha Creación`, label = T)) %>%
group_by(mes) %>% summarise(cod = n()) %>%
arrange(desc(cod)) %>%
plot_ly(x= ~mes, y=~cod, type = 'bar')
#El mes más ocupado es marzo donde se registraron 22708 llamadas, emails y mensajes
#4.¿Existe una temporalidad en la cantidad de llamadas?
datos %>% filter(Call == 1) %>%
mutate(mes = month(`Fecha Creación`, label = T)) %>%
group_by(mes) %>% summarise(count = n()) %>%
plot_ly(x= ~mes, y=~count, type = 'bar')
datos %>% filter(Call == 1) %>%
mutate(weekdays = wday(`Fecha Creación`, label = T)) %>%
group_by(weekdays) %>% summarise(count = n()) %>%
plot_ly(x= ~weekdays, y=~count, type = 'bar')
#No hay temporalidad ni por mes ni por día
#5. ¿Cuántos minutos dura la llamada promedio?
datos_Call <- datos %>% filter(Call == 1)
datos_Call$Tiempo <- difftime(datos_Call$`Hora Final`, datos_Call$`Hora Creación`, units = "mins")
mean(datos_Call$Tiempo)
## Time difference of 7.766638 mins
Positivo <- datos_Call %>% filter(datos_Call$Tiempo >= 0)
mean(Positivo$Tiempo)
## Time difference of 14.54774 mins
#El promedio es de 7.76 minutos
#Pero hay un problema cuando se llega a las 12 porque lo toma como 00 y no como 24 entonces no calcula bien la differencia
#El promedio tomando en cuenta eso es 14.54 min
#Realice una tabla de frecuencias con el tiempo de llamada.
frecuencia <- data.frame(datos_Call %>%
select(Tiempo) %>% filter(Tiempo >=0)%>%
group_by(Tiempo) %>%
summarise(cantidad = n()))
frecuencia
## Tiempo cantidad
## 1 0 mins 221
## 2 1 mins 211
## 3 2 mins 173
## 4 3 mins 195
## 5 4 mins 193
## 6 5 mins 184
## 7 6 mins 193
## 8 7 mins 196
## 9 8 mins 209
## 10 9 mins 165
## 11 10 mins 189
## 12 11 mins 196
## 13 12 mins 168
## 14 13 mins 163
## 15 14 mins 203
## 16 15 mins 187
## 17 16 mins 180
## 18 17 mins 176
## 19 18 mins 184
## 20 19 mins 190
## 21 20 mins 177
## 22 21 mins 203
## 23 22 mins 174
## 24 23 mins 189
## 25 24 mins 183
## 26 25 mins 174
## 27 26 mins 156
## 28 27 mins 173
## 29 28 mins 158
## 30 29 mins 171
## 31 30 mins 164
frecuencia %>% plot_ly(x= ~Tiempo, y = ~cantidad, type= "bar")